#while循环
#for循环针对集合中的每个元素执行一个代码块，while循环则不断运行，直到指定条件不再满足
#用while循环来数数
num = 1
while num <=10 :
    print(num)
    num += 1
#让用户选择何时退出while循环，定义一个退出值，只要用户输入的不是这个值，就一直运行
message = ''
while message != '1':
    message = input('请输入')
    print(message)
#使用标志
#在要求满足很多条件才继续运行的程序中，可以定义一个变量，用于判断程序是否处于活动状态，这个变量称为标志
#可以让程序在标志为true时继续运行，为false时停止运行
active = True
while active:
    message = input('输入')
    if message == '1':
        print(message)
        active = False
    else:
        print('继续')

#使用break退出循环
#不管条件测试结果如何，想立即退出while循环，可使用break
while active:
    message = input('输入')
    if message == '1':
        print(message)
        break
    else:
        print('继续')

#在循环中使用continue
#返回循环开头，并根据条件测试结果决定是否继续执行循环
number = 0
while number <10 :
    number += 1
    if number % 2 == 0:#被2整除
        continue#结果为true时，跳过剩余代码
    print(number)
#避免无限循环
#使用while循环处理列表和字典
#在列表之间移动元素
#有一列表包含新注册但未验证的网站用户，验证后将其移到已验证用户列表中
users = ['peter' , 'david' , 'sham']
users_over = []
while users :
    users_1 = users.pop()
    print(users_1)
    users_over.append(users_1)
for users_1_1 in users_over:
    print(users_1_1)
#删除特定值的列表元素
pets = ['cat', 'dog', 'bottle', 'cat' , 'cat']
print(pets)
while 'cat' in pets: #列表中有cat时执行循环
    pets.remove('cat')
print(pets)
#使用用户输入填充字典
foods = {}
end_title = True
while end_title:
    name = input("输入你的名字")
    food_name = input('输入你喜欢食物的名称')
    foods[name] = food_name
    end = input("是否还有人要输入，yes/no")
    if end.lower() == 'no' :
        end_title = False
for k , v in foods.items():
    print(f'{k} : {v}')